Jump to content

Tom Wellige

Root Moderator
  • Posts

    4,474
  • Joined

  • Last visited

  • Days Won

    120

Tom Wellige last won the day on June 16

Tom Wellige had the most liked content!

Reputation

85 Excellent

10 Followers

Profile Information

  • Gender
    Male
  • Interests
    SwyxWare, Software Development

Recent Profile Visitors

15,636 profile views
  1. Hallo und sorry für die späte Reaktion. Die Frage war komplett an mir vorbei gegangen... Du kannst zunächst mittels PBXGroup.IsLoggedIn überprüfen, ob mindestens ein Benutzer in der angerufenen Gruppe angemeldet ist. Dazu benutzt Du einfach einen "Variable auswerten" Block und trägst den Funktionsaufruf ohne weitere Zusätze in das Textfeld ein. Wird der Block über den "Wahr" Ausgang verlassen, ist wenigstens ein Benutzer angemeldet. In diesem Fall kannst Du nun mittels PBXGroup.IsBusy überprüfen, ob wenigstens ein Benutzer der Gruppe frei ist. Dazu benutzt Du wieder einen "Variable auswerten" Block. Wenn Du über den "Falsch" Ausgang heraus kommst, kannst Du den Ruf mittels "Durchstellen" Block (auf das ursprüngliche Ziel) an die Gruppe zustellen. In den beiden anderen Fällen ("Falsch" Ausgang vom ersten "Variable auswerten" Block, und "Wahr" Ausgang vom zweiten "Variable auswerten" Block) kann Du mit dem "E-Mail versenden" Block die gewünschte Benachrichtigung verschicken. Wenn Du hierbei aktuelle Werte Anrufernummer im Betreff und Text der EMail verwenden willst, ist das kein Problem: Betreff, z.B.: = "Anruf von " & IpPbx.CallingNumber Text, z.B.: = "Name: " & IpPbx.CallingName & vbCRLF & _ "Nummer: " & IpPbx.CallingNumber & vbCRLF & _ "Uhrzeit: " & CurDateTime() Die Werte IpPbx.CallingName, IpPbx.CallingNumber und CurDateTime sind der Liste hinter dem x/y Knopf am Ende des jeweiligen Textfeldes entnommen. Ich hoffe, dass Du damit erstmal weiter kommst. Wenn nicht, frag einfach nochmal nach.
  2. Für das Ein- und Ausbuchen kannst Du Dir auch ein kleines Call Couting bauen. Leider habe ich im Augenblick keine Zeit das auch fertig zu machen, würde es aber in etwa so implementieren: - eine kleine VBSkript Funktion die... - die aktuelle Text Datei mit den Nummern drin in ein VBSkript Array einliesst - prüft, ob die aktuelle Anrufer Nummer im Array enthalten ist - wenn ja, dann aus dem Array löschen - wenn nein, ans Ende des Arrays anfügen - die aktuelle Datei neu erzeugt (d.h. erst löschen) und dann neu schreiben (mit dem Inhalt des Arrays) Ja, jeder Aufruf der obigen Funktion ermittelt aufs Neue eine zufällige Nummer aus der Datei. Da der Aufruf der Einfachheit halb ja direkt im Durchstellen Block geschieht, kann Du mehrere solcher Blöcke einfach hintereinander setzen.
  3. Hallo Stefan, das lässt mit ein wenig VBSkript lösen. Ich habe Dir da mal was "vorbereitet" Kopiere den folgenden Code in die Parameter Seite des Start Block Deiner GSE Regel: Const NUMBER_TEXT_FILE = "C:\Projects\numbers.txt" Dim g_aNumbers() Dim g_nNumbers g_aNumbers = Array() '---------------------------------------------------------------- ' ReadNumbersFromFile ' ' Reads a text file containing phone numbers into a string array. ' ' Parameter: ' ' Return: ' boolean True - at least one number read from file '---------------------------------------------------------------- Function ReadNumbersFromFile PBXScript.OutputTrace "-----------> ReadNumbersFromFile" Dim bReturn, sLine, nCount bReturn = False On Error Resume Next Dim fso, file Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(NUMBER_TEXT_FILE) Then Set file = fso.OpenTextFile(NUMBER_TEXT_FILE, 1) ' fsoForReading If Err <> 0 Then PBXScript.OutputTrace "Error opeing file '" & NUMBER_TEXT_FILE & "'!" PBXScript.OutputTrace Err & ": " & Err.Description Else PBXScript.OutputTrace "File '" & NUMBER_TEXT_FILE & "' opened" g_nNumbers = 0 Do Until file.AtEndOfStream sLine = Trim(file.ReadLine) If sLine <> "" Then g_nNumbers = g_nNumbers + 1 PBXScript.OutputTrace g_nNumbers & ": " & sLine bReturn = True ReDim Preserve g_aNumbers(g_nNumbers) g_aNumbers(g_nNumbers) = sLine End If Loop file.Close End If Set file = Nothing Else PBXScript.OutputTrace "File '" & NUMBER_TEXT_FILE & "' does not exist!" End If Set fso = Nothing ReadNumbersFromFile = bReturn PBXScript.OutputTrace "bReturn = " & bReturn PBXScript.OutputTrace "<----------- ReadNumbersFromFile" End Function '---------------------------------------------------------------- ' GetRamdomNumberFromFile ' ' Returns a given number from a file containing a list of numbers. ' ' Parameter: ' sDefaultNumber number to return if no number can be taken from file ' ' Return: ' string valid number of empty string '---------------------------------------------------------------- Function GetRamdomNumberFromFile ( sDefaultNumber ) PBXScript.OutputTrace "-----------> GetRamdomNumberFromFile ( " & sDefaultNumber & " )" Dim sReturn, nMin, nMax, nIndex sReturn = sDefaultNumber If ReadNumbersFromFile Then ' get random number between 1 and num of numbers in file Randomize nMin = 1 nMax = g_nNumbers nIndex = CInt((nMax-nMin+1) * Rnd + nMin) If nIndex < nMin Then nIndex = nMin If nIndex > nMax Then nIndex = nMax PBXScript.OutputTrace "nIndex = " & nIndex sReturn = g_aNumbers(nIndex) End If GetRamdomNumberFromFile = sReturn PBXScript.OutputTrace "sReturn = " & sReturn PBXScript.OutputTrace "<----------- GetRamdomNumberFromFile" End Function In der ersten Zeile des Codes musst Du den Ort und den Namen der Textdatei anpassen. Hierbei beachte bitte, dass das Call Routing Leserechte auf der Datei haben muss. D.h. Du musst dem Benutzer unter dem der SwyxServer Dienst läuft (in der Regel "SwyxServiceAccount") entsprechende Berechtigung geben. wenn Du Dich in der Cloud befindest (d.h. auf einer SwyxON) hast Du keinen Zugriff auf das lokale Dateisystem und damit fällt diese Lösung komplett flach. Anschliessend kannst Du die Funktion GetRamdomNumberFromFile direkt in einem Durchstellen Block aufrufen. Sie erhält als Parameter die Nummer die zurück gegeben werden, wenn keine Nummer aus der Textdatei gelesen werden kann. Folgendes musst Du in den Durchstellen Block eintragen: = GetRamdomNumberFromFile("100")
  4. Wie ich Dir gerade auch in Deinem Topic genatwortet habe, ist die Anzahl der Namenstasten in einer Skin auf 250 begrenzt.
  5. Im SwyxIt! Classic ist die Anzahl der möglichen Namenstasten in einer Skin tatsächlich auf 250 begrenzt. Das ist hart im Produkt verdrahtet und lässt sich nicht von aussen ändern.
  6. Hallo Martin, eine fertige Lösung habe ich leider nicht für Dich (obwohl ich vor vielen Jahren mal exakt eine solche Lösung in den Fingern hatte). Du kannst die folgende VBSkript Funktion als Grundlage nehmen, um eine Textdatei auszuwerten. https://www.swyxforum.com/vbscript-function-collection/functions/checkcallerintextfile-r3/ Statt auf Telefonnummern in jeder Zeile prüft Du dann auf ein Datum und schaust, ob es gleich dem aktuellen ist. Das geht in VBSkript ganz gut mittels DateDiff.
  7. Enreach hat einen Posten als Mitarbeiter Vertriebsinnendienst/Inside Sales (all genders) in Teilzeit zu besetzen. Alle weiteren Details hierzu finden Sie hier: https://www.enreach.de/de/stellenangebote?jh=73imif9h549jcy8d7z1cp07ep9t73no
  8. This is an ECR extension, meaning it is part of the call routing which runs on the server, before the call is getting connected to a client. There is however a small extension for the skin of the SwyxIt! Classic cliebnt available: the Zendesk SwyxIt! button. If a call is connected through a properly prepared call routing (see the previous link for details) you can push this button in the SwyxIt! Classic client to open the Zendesk ticket belonging to the current call in a web browser. You can also open a ticket in a browser of an agent from within the call routing. This can be done with the GSE Action Zendesk Open Ticket.
  9. Sorry for the late reply. I saw your question only now. Yes, it will work with all SwyxWare versions above 12.40 (when using VBScript based call routing - which is still the default for the call routing) or SwyxWare verions above 13.10 (when using Lua based call routing - which is still in beta state within the SwyxWare - but is from the perspective of the Zendesk Integration already fully functional). Hope this answers your question,
  10. Hallo Martin, Du bist da insgesamt schon auf dem richtigen Weg. Mittels der VBSkript Funktion Weekday kannst Du den aktuellen Wochentag ermitteln. Weekday(Now) = 6 Ich nehme an, Du verwendest bereits die IsPublicHolidayDE Frunktion hier aus dem Forum? Die kannst Du auch dazu verwenden, um nicht nur das aktuelle Datum sondern jedes beliebige Datum zu überprüfen. Mittels DateAdd kannst Du das gestrige Datum ermitteln. DateAdd("d", -1, Now) In der Anwendung sähe das dann in etwa so aus:
  11. Die einfachste Möglichkeit wäre zwei Gruppen anlegen, ein ohne den Benutzer und eine mit dem Benutzer. Im Call Routing ermittelst Du den Wochentag, und stellst dann mit dem "Durchstellen" Block entweder auf die eine oder andere Gruppe zu. Mit der VBSkript Weekday Funktion kannst Du den Wochentag ermitteln. Das kannst Du ganz einfach in einem "Variable auswerten" Block machen: Weekday(Now) = 6
  12. Hallo Paul, Du hast Recht, ein schneller, einfacher und kostenfreier Weg ist das Call Routing. Der Vollständigkeit halber sei aber auch erwähnt, dass Du mittels Visual Contacts (welches auf dem ESTOS Meta Directoy bariert) auch Deine Datenbank auflösen kannst. Allerding muss dad extra lizenziert werden. Wenn Du das im Call Routing machen willst, ist diese Funktion ein guter Start: CheckCallerInDatabase Ob auf der Seite ist die Introduction verlinkt, welche Dir erklärt, wie Du diese Funktion in das Call Routing einbettest und anschliessend aufrufen kannt. Du musst die Funktion ein wenig anpassen, um den Namen aus der Datenbank zu lesen, und nicht nur zu überprüfen, ob der Anrufer bekannt ist. Wenn Du den Namen ermittels hast, kannst Du ihn mittels PBXCall.CallingPartyName setzen. Das solltest Du machen, bevor Du den Ruf mit dem "Durchstellen" Block auf ein Ziel zustellst. Anschliessend wird der gesetzte Name um Display vom Client, Telefon, der Anruferliuste (Rufjournal) und den Call Detail Records angezeigt.
  13. Exportiere die Regel doch bitte mal als .rse Datei (Datei | Exportieren...) und hefte die Datei entweder hier an. Oder wenn Du die nicht öffnetlich ins Forum stellen willst, kannst Du sie mir auch per direkter Nachricht schicken. Ich denke ohne einen Blick in die Regel werfen zu können, kann ich nichts zu Deiner Frage sagen.
  14. Du willst sie nicht mehr in der Parameter Liste haben, sondern sie sollen hard verdrahtet in der GSE Regel gesetzt werden? Das machst Du in den Eigeschaften der Blöcke (1) und (2) Dazu nimmst Du dort jeweils in der "Ziel" Eigenschaft die bisher verwendet Variable ( = VariablenName ) heraus und trägst dort direkt die gewünschte Nummer ein. Zusätzlich öffnest Du die Skript Eigenschaften auf die Parameter Seite löscht Du die beiden entsprechenden Einträge in der dort vorhanden Liste auf der General Seite entfernst Du die beiden Werte aus dem Beschreibungs Feld. Was genau meinst Du damit? Wenn der Warteschlangen Timeout erreicht wird? Wenn ja, dann hängst Du einfach einen "Durchstellen" Block hinter die beiden Timeout Ausgange des "Anruf in Warteschlange" Block. Zusätzlich musst Die die Timeout Werte in den "Warteschlangen-Attribute setzen" und "Anruf und Warteschlange" auf den gleichen Wert setzen. Bevor Du Änderungen vornimmst, von denen Du Dir nicht sicher bist, dass das alles so ist, wie Du willst, empfehle ich Dir über "Datei | Exportieren..." die Regel als .rse Datei zu exportieren. So hast Du ein Back, das Du jederzeit per "Datei | Importieren..." wieder herstellen kannst.
  15. Hallo, dazu kannst Du den "Voice Box" Block im GSE verwenden: Dort musst Du die gewünschte Ansage und auch die EMail Adresse hinterlegen, an die die Nachricht geschickt werden soll. Zusätzlich kann sie auch im SwyxIt! Client (Neu oder Classic) abgehört werden, ggf. auch mit Transkription). Den SMTP Mail Server konfigurierst Du in den SwyxWare Einstellungen. Das kannst Du entweder in der SwyxWare Administration https://help.enreach.com/cpe/14.20/Administration/Swyx/de-DE/#page/help/chap_serverconfiguration.10.18.html oder im Swyx Control Center https://help.enreach.com/controlcenter/14.20/web/Swyx/de-DE/#page/help/chap_serverconfiguration.06.14.html machen.

Important Information

By using this site, you agree to our Terms of Use and have taken note of our Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.